<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        var arr = ["孙悟空", "猪八戒", "沙和尚"];
        var arr2 = ["红孩儿", "牛魔王", "太上老君"];
        var arr3 = ["红线仙", "如来佛祖", "三清道长"];
        //1. concat()可以连接两个或多个数组，并将新的数组返回
        // 该方法不会对原数组产生影响
        // 可以连接多个数组，也可以添加元素

        // var result = arr.concat(arr2, arr3, "123");
        // console.log(result);


        // 2.join()
        // 该方法可以将数组转化为一个字符串
        // 该方法不会对原数组产生影响而是将其转化为字符串，将其返回
        // 在join中可以指定一个字符串作为参数，这个字符串将会成为数组中元素的连接符
        // 如果不指定连接符，则默认使用,

        // var result = arr.join("--->");
        // console.log(typeof result);


        /*3.reverse()颠倒数组顺序
         *会影响原数组
         */
        // arr.reverse();
        // console.log(arr);


        //4.sort();可以用来对数组排序
        // 会影响原数组，默认按照Unicode编码排序
        // 对于纯数字，也只能按照Unicode编码，所以会有误
        // 我们可以自己指定排序规则
        // 我们可以在sort()函数中添加一个回调函数，来指定排序规则
        // 回调函数中需要定义两个形参
        // 浏览器将会分别使用数组中的元素作为实参去调用回调函数
        //     使用哪个元素调用不稳定,但是肯定的是在数组中a一定在b前边
        //      浏览器会根据回调函数的返回值来决定元素的顺序
        //       如果返回一个大于0的值,则元素位置交换
        //         如果返回一个小于0的值,则元素位置不变
        //          如果返回一个0,则认为两个元素相等,也不交换位置

        // 如果需要升序排列则可以 return a-b;
        // 降序排列  return b-a;

        var shu = [22, 32, 52, 11, 2, 5];
        // 调用sort()方法,添加回调函数
        shu.sort(function(a, b) {
            // // 从小到大顺序
            // if (a > b) {
            //     return 1;
            // } else if (a < b) {
            //     return -1;
            // } else {
            //     return 0;
            // }
            return a - b;
        });
        console.log(shu);
    </script>
</body>

</html>